﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.SPP.EntidadesNegocio;
using MJM.SPP.AccesoDatos;

namespace MJM.SPP.ComponentesNegocio
{
    public class RestriccionGrupoCN
    {
        protected static RestriccionGrupoAD objRestriccionGrupoAD = new RestriccionGrupoAD();

        public int Insertar(RestriccionGrupoEN obj)
        {
            return objRestriccionGrupoAD.Insertar(obj);
        }

        public int Modificar(RestriccionGrupoEN obj)
        {
            return objRestriccionGrupoAD.Modificar(obj);
        }

        public List<RestriccionGrupoEN> Listar(int idGrupo)
        {
            List<RestriccionGrupoEN> lst = objRestriccionGrupoAD.Listar();
            List<RestriccionGrupoEN> aux = new List<RestriccionGrupoEN>();
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].USUGRU_P_inID == idGrupo)
                {
                    aux.Add(lst[i]);
                }
            }

            return aux;
        }

        public bool Existe(int idRestriccion, int idGrupo)
        {
            List<RestriccionGrupoEN> lst = Listar(idGrupo);
            for (int i = 0; i < lst.Count; i++)
            {
                if (idRestriccion == lst[i].RESEXT_P_inID)
                    return true;
            }
            return false;
        }

        public bool Acceso(int idRestriccion, int idGrupo,string ip)
        { 
            List<RestriccionGrupoEN> lst = Listar(idGrupo);
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].RESEXT_P_inID == idRestriccion)
                {
                    if (lst[i].RESGRU_inFLAELI == 2 && !ip.StartsWith("192.168.106") && !ip.StartsWith("172.16.5") && !ip.StartsWith("172.16.7") && !ip.StartsWith("172.16.11") && !ip.StartsWith("172.16.8"))
                        return false;
                    else
                        return true;
                }
            }
            return true;
        }

        public RestriccionGrupoEN Obtener(int idGrupo, int idRestriccion)
        {
            List<RestriccionGrupoEN> lst = Listar(idGrupo);
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].RESEXT_P_inID == idRestriccion)
                    return lst[i];
            }
            return null;
        }
    }
}
